package controler.edition;

import java.util.List;

import javax.swing.DefaultListModel;

import model.dao.LieuDAO;
import model.dao.NewsDAO;
import controler.Lieu;
import controler.News;

public class EditLieu {
	
	private String formaterImage(String image) {
		String as = new String ("\\"); 
		String das = new String("\\\\"); 
		return image.replace(as, das);
	}
	
	public void ajouterLieu(String libelle, String description, String image) {
		Lieu lieu = new Lieu();
		lieu.setLibelle(libelle);
		lieu.setDescription(description);
		lieu.setImage(formaterImage(image));
		new LieuDAO(lieu).ajouter();
	}
	
	public DefaultListModel listerAll() {
		List<Lieu> listLieu = LieuDAO.selectAll();
		DefaultListModel model = new DefaultListModel<>();
		for (Lieu lieu : listLieu) {
			String line = lieu.getId() + " | ";
			line += lieu.getLibelle() + " | ";
			line += lieu.getImage();
			model.addElement(line);
		}
		return model;
	}
	
	public DefaultListModel searchKeyWord(String nom) {
		List<Lieu> listLieu = LieuDAO.rechercheLieuKeyWord(nom);
		DefaultListModel model = new DefaultListModel<>();
		for (Lieu lieu : listLieu) {
			String line = lieu.getId() + " | ";
			line += lieu.getLibelle() + " | ";
			line += lieu.getImage();
			model.addElement(line);
		}
		return model;
	}
	
	public DefaultListModel searchExactWord(String nom) {
		List<Lieu> listLieu = LieuDAO.rechercheLieuNomExact(nom);
		DefaultListModel model = new DefaultListModel<>();
		for (Lieu lieu : listLieu) {
			String line = lieu.getId() + " | ";
			line += lieu.getLibelle() + " | ";
			line += lieu.getImage();
			model.addElement(line);
		}
		return model;
	}
	
	public Lieu recupLieu(int id) {
		LieuDAO dao = new LieuDAO(new Lieu(id));
		dao.recupererInfos();
		return dao.getLieu();
	}
	
	public void delete(int id) {
		LieuDAO dao = new LieuDAO(new Lieu(id));
		dao.supprimer();
	}
	
	public void update(int id, String libelle, String description, String image) {
		Lieu lieu = new Lieu(id);
		lieu.setLibelle(libelle);
		lieu.setDescription(description);
		lieu.setImage(formaterImage(image));
		new LieuDAO(lieu).modifier();
	}
}
